[INV-BACKEND-051] Создать метод POST /api/v1/consume/items

Разработка внедоменного эндпоинта фиксации потребления продуктов

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи

  • Инструкция по шагам:
    1. На Шагах 1-2: Реализовать прием запроса от мобильного приложения. Обязательно извлечь или сгенерировать сквозной X-Request-ID (trace_id).
    2. На Шаге 3: Разработать схему Pydantic-валидации входящего тела запроса. Поля: space_type (строго ENUM: HOME, OFFICE), spent_items (массив объектов: food_element_id, quantity в литрах/граммах/порциях).
    3. Перенаправить валидированный пакет данных по внутреннему gRPC или HTTP-интерфейсу в нижележащий микросервис consume-service.
    4. Принять пакет данных от backend-api. Пробросить заголовок X-Request-ID.
    5. На Шаге 4: Выполнить синхронный gRPC-вызов к смежному компоненту fridge-service, вызвав метод MutateBalances и передав структуру spent_items и признак space_type.
    6. На Шаге 8-9: При получении успешного gRPC-статуса от fridge-service, мгновенно вернуть Gateway статус 200 OK для разблокировки UI мобильного клиента.
    7. На Шаге 10: Сразу после ответа клиенту, в асинхронном режиме (Fire-and-Forget) сформировать и отправить пакет в Kafka-топик bpds.pma.out.process.event с признаком event_type: "CONSUMED". В Payload передать детализацию съеденного, space_type и trace_id.